1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.base;
18
19 import com.google.caliper.BeforeExperiment;
20 import com.google.caliper.Benchmark;
21 import com.google.caliper.Param;
22 import com.google.common.collect.Iterables;
23
24
25
26
27
28
29 public class SplitterBenchmark {
30
31 @Param({"1", "10", "100", "1000"}) int length;
32
33 @Param({"xxxx", "xxXx", "xXxX", "XXXX"}) String text;
34
35 private String input;
36
37 private static final Splitter CHAR_SPLITTER = Splitter.on('X');
38 private static final Splitter STRING_SPLITTER = Splitter.on("X");
39
40 @BeforeExperiment void setUp() {
41 input = Strings.repeat(text, length);
42 }
43
44 @Benchmark void charSplitter(int reps) {
45 int total = 0;
46
47 for (int i = 0; i < reps; i++) {
48 total += Iterables.size(CHAR_SPLITTER.split(input));
49 }
50 }
51
52 @Benchmark void stringSplitter(int reps) {
53 int total = 0;
54
55 for (int i = 0; i < reps; i++) {
56 total += Iterables.size(STRING_SPLITTER.split(input));
57 }
58 }
59 }